package com.xpgk.mvc.measurement;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Record;
import com.xpgk.annotation.Table;
import com.xpgk.mvc.base.BaseModel;
import com.xpgk.mvc.bentryRegister.Customer;
import com.xpgk.mvc.bentryRegister.CustomerAgreement;
import com.xpgk.mvc.bentryRegister.CustomerDetail;
import com.xpgk.mvc.codeSet.Code;
import com.xpgk.mvc.organization.Organization;
import com.xpgk.mvc.user.UserInfo;
import com.xpgk.tools.ToolDateTime;

/**
 * 
 * 咨询测算用户信息
 * 
 * */

@SuppressWarnings("unused")
@Table(tableName = Temporary.table_name)
public class Temporary extends BaseModel<Temporary>{
	//private static final long serialVersionUID = 6761767368352810428L;

	/**
	 * 
	 */
	private static final long serialVersionUID = 6094133452904940688L;

	private static final Log log = Log.getLog(Temporary.class);

	public static final Temporary dao = new Temporary().dao();
	
	/**
	 * 表名称
	 */
	public static final String table_name = "sb_customer_temporary";

	/**
	 * 字段描述：状态  字段类型：int 长度：32
	 */
	public static final String column_dataStatus = "dataStatus";
	/**
	 * 字段描述：该条数据添加人员is  字段类型：character varying 长度：32
	 */
	public static final String column_createId = "createId";
	/**
	 * 字段描述：该条数据添加时间  字段类型：datetime 长度：0
	 */
	public static final String column_createDate = "createDate";
	/**
	 * 字段描述：该条数据更新人员id  字段类型：character varying 长度：100
	 */
	public static final String column_updateId = "updateId";
	/**
	 * 字段描述：该条数据更新时间  字段类型：datetime 长度：0
	 */
	public static final String column_updateDate = "updateDate";
	
	/**
	 * 字段描述：主键 字段类型：character varying 长度：32
	 */
	public static final String column_ids = "ids";
	/**
	 * 字段描述：机构ids 字段类型：character varying 长度：32
	 */
	public static final String column_organIds = "organIds";

	/**
	 * 字段描述：顾客名称 字段类型：character varying 长度：25
	 */
	public static final String column_name = "name";
	
	/**
	 * 字段描述：顾客性别 字段类型：character varying 长度：2
	 */
	public static final String column_sex = "sex";
	
	/**
	 * 字段描述：顾客手机号 字段类型：character varying 长度：20
	 */
	public static final String column_phone = "phone";
	/**
	 * 字段描述：谈话内容 字段类型：character varying 长度：20
	 */
	public static final String column_talk = "talk";
	
	/**
	 * 字段描述：顾客年龄  字段类型：bigint 长度：11
	 */
	public static final String column_age = "age";
	
	/**
	 * 字段描述：顾客身高  字段类型：bigint 长度：4
	 */
	public static final String column_height = "height";
	
	/**
	 * 字段描述：顾客体重  字段类型：bigint 长度：4
	 */
	public static final String column_weight = "weight";
	/**
	 * 字段描述：顾客标准体重  字段类型：bigint 长度：4
	 */
	public static final String column_standWeight = "standWeight";
	
	/**
	 * 字段描述：顾客目标体重  字段类型：bigint 长度：4
	 */
	public static final String column_targetWeight = "targetWeight";
	/**
	 * 字段描述：顾客应减体重  字段类型：bigint 长度：4
	 */
	public static final String column_delWeight = "delWeight";
	/**
	 * 字段描述：顾客减重周期  字段类型：bigint 长度：4
	 */
	public static final String column_weightDay = "weightDay";
	/**
	 * 字段描述：顾客花费 字段类型：bigint 长度：4
	 */
	public static final String column_cost = "cost";
	
	/**
	 * 字段描述：测算结果  字段类型：character varying 长度：255
	 */
	public static final String column_result = "result";
	/**
	 * 字段描述：疗程数字段类型：character varying 长度：255
	 */
	public static final String column_treatment = "treatment";
	
	/**
	 * 字段描述：成交状态（0：未成交，1：成交）   默认：0   字段类型：character 长度：1
	 */
	public static final String column_status = "status";
	
	/**
	 * 字段描述：未成交类型对应code表dmz 字段类型：character varying 长度：4
	 */
	public static final String column_loseType = "loseType";
	
	/**
	 * 字段描述：未成交原因  字段类型：character varying 长度：4
	 */
	public static final String column_loseReason = "loseReason";
	
	/**
	 * 字段描述：更新时间  字段类型：Datetime 长度：0
	 */
	public static final String column_gxsj = "gxsj";
	
	/**
	 * 字段描述：进店方式 (与维护进店方式表对应)     默认：0   字段类型：character 长度：2
	 */
	public static final String column_jdfs = "jdfs";
	/**
	 * 字段描述：介绍人ids      字段类型：character 长度：32
	 */
	public static final String column_jsrIds = "jsrIds";
	
	/**
	 * 字段描述：介绍人电话      字段类型：character 长度：32
	 */
	public static final String column_jsrPhone = "jsrPhone";
	
	/**
	 * 字段描述：介绍人姓名   字段类型：character varying 长度：20
	 */
	public static final String column_jsrName = "jsrName";
	/**
	 * 字段描述：介绍人机构   字段类型：character varying 长度：20
	 */
	public static final String column_jsrorg = "jsrStore";
	
	/**
	 * 字段描述：介绍人1：内部员:2：顾客   字段类型：character varying 长度：20
	 */
	public static final String column_jsrtype = "jsrtype";
//	
//	/**
//	 * 字段描述:介绍人手机  字段类型：character varying 长度：11
//	 */
//	public static final String column_jsrPhone = "jsrPhone";
//	
//	/**
//	 * 字段描述：介绍人所属门店（与门店表关联）  字段类型：character varying 长度：20
//	 */
//	public static final String column_jsrStore = "jsrStore";
	
	/**
	 * 字段描述：接待人（与user表关联）  字段类型：bigint 长度：20
	 */
	public static final String column_jdr = "jdr";
	/**
	 * 字段描述：接待人（与user表关联）  字段类型：bigint 长度：20
	 */
	public static final String column_fzr = "fzr";
	
	/**
	 * 字段描述：顾客反映（0/良好，1/不好） 默认:0  字段类型：bigint 长度：2
	 */
	public static final String column_gkfy = "gkfy";
	/**
	 * 字段描述：顾客分类（0/成交，1/意向，2/无意向，3/潜在） 默认：0   字段类型：bigint 长度：4
	 */
	public static final String column_gkfl = "gkfl";
	/**
	 * 字段描述：编   字段类型：character varying 长度：20
	 */
	public static final String column_number = "number";

	
	
	/**
	 * sqlId 描述：自定义查询
	 */
	public static final String sqlId_column = "sb.temporary.column";
	/**
	 * sqlId 描述：查询测算编号
	 */
	public static final String sqlId_selNumber = "sb.temporary.selNumber";
	/**
	 * sqlId 描述：根据编号查测算信息
	 */
	public static final String sqlId_selTemByNum = "sb.temporary.selTemByNum";
	/**
	 * sqlId 描述：根据手机号查询测算信息
	 */
	public static final String sqlId_selTemByPhone = "sb.temporary.selTemByPhone";
	/**
	 * sqlId :sb.temporary.selOrgByCusPhone 描述：根据会员手机号查出所在门店
	 */
	public static final String sqlId_selOrgByCusPhone = "sb.temporary.selOrgByCusPhone";

	/**
	 * 关联查询，根据手机号获取测算信息
	 * 
	 * @return
	 */
	public Temporary getTemporary(String phone) {
		Map<String, Object> param = new HashMap<String, Object>();
		param.put("column", Temporary.column_phone);
		String sql = getSqlByBeetl(Temporary.sqlId_column, param);
		return Temporary.dao.findFirst(sql,phone);
	}
	
	/**
	 * 获取测算记录
	 * @param phone 手机号
	 * @return
	 */
	public Temporary getTodayRecord(String phone){
		String sql = "select * from sb_customer_temporary where  phone=? ";
		return findFirst(sql, phone);
	}
	/**
	 * 获取Code 
	 * @param 
	 * @return
	 */
	public Code getCode(){
		return Code.dao.findById(this.getStr(column_jdfs));
	}
	/**
	 * 关联查询，获取介绍人门店信息
	 * 
	 * @return
	 */
	public Customer getCustomer() {
		return Customer.dao.findById(this.getStr(column_jsrIds));
	}
	/**
	 * 关联查询，获取顾客协议信息
	 * 
	 * @return
	 */
	public CustomerAgreement getCustomerAgreement() {
		Map<String, Object> par = new HashMap<String, Object>();
		par.put("column", Customer.column_phone);
		String cussql = getSqlByBeetl(Customer.sqlId_column, par);
		Customer  cus=Customer.dao.findFirst(cussql,this.getStr(column_phone));
		if(cus!=null)
		{
			Map<String, Object> param = new HashMap<String, Object>();
			param.put("column", CustomerAgreement.column_customerID);
			String sql = getSqlByBeetl(CustomerAgreement.sqlId_column, param);
			return CustomerAgreement.dao.findFirst(sql,cus.getStr(Customer.column_ids));
		}else
		{
			return null;
		}
		
	}
	
	/**
	 * 关联查询，获取顾客详细信息
	 * 
	 * @return
	 */
	public CustomerDetail getCustomerDetail() {
		Map<String, Object> par = new HashMap<String, Object>();
		par.put("column", Customer.column_phone);
		String cussql = getSqlByBeetl(Customer.sqlId_column, par);
		Customer  cus=Customer.dao.findFirst(cussql,this.getStr(column_phone));
		
		if(cus!=null)
		{
			Map<String, Object> param = new HashMap<String, Object>();
			param.put("column", CustomerDetail.column_customerIds);
			String sql = getSqlByBeetl(CustomerDetail.sqlId_column, param);
			return CustomerDetail.dao.findFirst(sql,cus.getStr(Customer.column_ids));
		}else
		{
			return  null;
		}
		
	}
	
	/**
	 * 关联查询，获取顾客信息
	 * 
	 * @return
	 */
	public Customer getCustomerInfo() {
		Map<String, Object> par = new HashMap<String, Object>();
		par.put("column", Customer.column_phone);
		String cussql = getSqlByBeetl(Customer.sqlId_column, par);
		Customer  cus=Customer.dao.findFirst(cussql,this.getStr(column_phone));
		
		if(cus!=null)
		{
			return cus;
		}else
		{
			return  null;
		}
		
	}
	
}
